let arr: number [] = [1, 2, 34];


// Tuple 元组 : 元素的组合
let tupleType: [string, number];
tupleType = ['string', 123];

console.log(tupleType[0]);

//void : 空   只能return null 和undefined

function getNum(): number {
  return 1
}

function warnUser(): void {
  return null
}

// 同样也适用于变量
let unAble: void;

unAble = undefined;

// Object类型
// Typescript 强类型  约束对象里面的属性

// 1. 采用中括号的方式

// 接口 : interface : java里面的关键字
interface Person {
  qwer: string;
  readonly name: string;
  age: number;
  sex?: boolean;// 可选属性
  friends?: ReadonlyArray<string>;

}

// @ts-ignore
let obj: Person = {};
obj.qwer = '123';

console.log(obj);


let person: Person = {
  qwer: '123',
  name: '小天',
  age: 20,
  sex: false,//女
  friends: ['小王', '小李', '小杨']
};
// person.friends.push('123');

// person.friends[1] = '稀饭';
// person.name = '1234';
console.log(person);

let ro: ReadonlyArray<string> = person.friends;
console.log(ro);

// type 和 interface



